package com.itheima.demo;

public class Test2 {

    public static void main(String[] args) {

        //需求：生成指定位数的验证码并返回，验证码的每一位只能是数字或大写字母或小写字母
        System.out.println(getCode(4));
        System.out.println(getCode(6));

    }


    public static String getCode(int n) {
        //定义一个变量用于记录生成的验证码
        String code = "";

        //循环n次，每次生成一个字符
       /* //方法1
        for (int i = 0; i < n; i++) {
            //为当前位置随机生成一个数字或大写字母或小写字母
            int num = (int) (Math.random() * 62);
            if (num >= 0 && num <= 9) {
                //num是0-9之间的数字
                code += num;
            } else if (num > 9 && num <= 35) {
                //num是10-35之间的数字，表示大写字母，A的ASCII码是65
                code += (char) (num + 55);
            } else {
                //num是36-61之间的数字，表示小写字母，a的ASCII码是97
                code += (char) (num + 61);
            }
        }*/
        //方法2
        for (int i = 0; i < n; i++) {
            //随机一个数字0、1、2代表当前位置字符的类型
            int type = (int) (Math.random() * 3);
            switch (type) {
                case 0:
                    int num = (int) (Math.random() * 10);
                    code += num;
                    break;
                case 1:
                    int num1 = (int) (Math.random() * 26);
                    char c = (char) (num1 + 'A');
                    code += c;
                    break;

                case 2:
                    int num2 = (int) (Math.random() * 26);
                    char c1 = (char) (num2 + 'a');
                    code += c1;
                    break;
            }
        }

        return code;
    }
}
